#pragma once
#include <string>
#include <vector>
#include <algorithm>
#include <BWAPI.h>

class Strategy
{
public:
	Strategy(void);
	~Strategy(void);
	//Set the targets that the strategy must attack.
	void setTargets(std::vector<std::string>& the_targets);

	//Does any special work for a strategy subclass
	virtual void setTargetsSpecial() = 0; 

	//Get a target for a given unit.
	virtual std::vector<std::string> & getTargetPriority(std::string) = 0;
protected:
	std::vector<std::string> targets;
	std::vector<std::string> myUnitTypes;
	std::vector<std::string> targetPriority;	
};
